home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / geos-archive / GEOS-D64 / GEOS Mega ASM (19xx)(-).d64 / list6-7 < prev    next >
Text File  |  2019-04-13  |  6KB  |  317 lines

  1. ; Desk Accessory zum Auslesen von Syteminformationen (C128)
  2. if     .p
  3.      t     "TopSym"
  4.      t     "TopMac"
  5.      t     "Sym128.erg"
  6. endif
  7.      n     "DeskAccessory"
  8.      i
  9.      f     DESK_ACC
  10.      o     $3500
  11.      q     $7f39
  12.      p     Start128
  13.      z     $40
  14.  
  15. :Left     = 48!DOUBLE_W
  16. :Right     = 272!DOUBLE_W!ADD1_W
  17. :Top     = 16
  18. :Bottom     = 152
  19.  
  20. :Start     jsr     i_ImprintRectangle
  21.      b     0,199
  22.      w     0,319!DOUBLE_W!ADD1_W
  23.  
  24.      LoadW     r1,COLOR_MATRIX
  25.      LoadW     r0,1000
  26.      MoveB     screencolors,r2L
  27.      jsr     FillRam
  28.  
  29.      LoadB     dispBufferOn,ST_WR_FORE!ST_WR_BACK
  30.      LoadW     r0,GrafikTab
  31.      jsr     GraphicsString
  32.      LoadW     r0,MenuTab
  33.      jsr     DoMenu
  34.      LoadW     r0,IconTab
  35.      jsr     DoIcons
  36.  
  37.      LoadW     leftMargin,Left+10
  38.      jsr     i_PutString
  39.      w     Left+10
  40.      b     Top+32
  41.      b     "aktueller Diskname:",CR
  42.      b     "Druckername:",CR
  43.      b     "Zeit:",NULL
  44.  
  45.      LoadW     r8,curDirHead+144
  46.      LoadW     r9,DiskName
  47.      ldx     #r8L     ; Wertzeichen beachten !!
  48.      ldy     #r9L
  49.      lda     #16
  50.      jsr     CopyFString
  51.  
  52.      LoadW     r0,DiskName
  53.      LoadW     r11,Left+100
  54.      LoadB     r1H,Top+32
  55.      jsr     PutString
  56.      LoadW     r0,PrntFileName
  57.      LoadW     r11,Left+100
  58.      LoadB     r1H,Top+32+10
  59.      jsr     PutString
  60.  
  61.      LoadW     r0,ProcessTab
  62.      lda     #1     ; 1 Proze~
  63.      jsr     InitProcesses
  64.      ldx     #0
  65.      jsr     RestartProcess
  66.  
  67.  
  68.      ldx     #0
  69.      jsr     EnableProcess
  70.  
  71.      LoadW     keyVector,MyKeys
  72.  
  73.      rts
  74. :GrafikTab
  75.      b     MOVEPENTO
  76.      w     Left+8
  77.      b     Top+8
  78.      b     NEWPATTERN
  79.      b     1
  80.      b     RECTANGLETO
  81.      w     Right+8
  82.      b     Bottom+8
  83.      b     MOVEPENTO
  84.      w     Left
  85.      b     Top
  86.      b     NEWPATTERN
  87.      b     9
  88.      b     RECTANGLETO
  89.      w     Right
  90.      b     Top+16
  91.      b     NEWPATTERN
  92.      b     0
  93.      b     RECTANGLETO
  94.      w     Left
  95.      b     Bottom
  96.      b     FRAME_RECTO
  97.      w     Right
  98.      b     Top
  99.      b     NULL
  100.  
  101. :MenuLeft     =     Left & %0111111111111111
  102. :MenuTab     b     Top,Top+14
  103.      w     MenuLeft,MenuLeft+32
  104.      b     HORIZONTAL!1
  105.      w     MenuText
  106.      b     SUB_MENU
  107.      w     UnterMenu
  108.  
  109. :MenuText     b     "Men}",0
  110.  
  111. :UnterMenu     b     Top+14,Top+28
  112.      w     MenuLeft,MenuLeft+32
  113.      b     VERTICAL!1
  114.      w     InfoText
  115.      b     MENU_ACTION
  116.      w     DoInfo
  117.  
  118. :InfoText     b     "Info",0
  119.  
  120. :IconTab     b     1     ; 1 Icon
  121.      w     0     ; kein Setzen der Maus
  122.      b     0
  123.  
  124.      w     komBitmap     ; Zeiger auf die Bitmap
  125.      b     (Right&%0101111111111111)/8-2!DOUBLE_B
  126.                ; x-Koordinate in Cards!
  127.      b     Top     ; y-Koordinate in Pixel
  128.      b     2!DOUBLE_B     ; Breite des Icons
  129.      b     14     ; H|he des Icons
  130.      w     EndDA128     ; Adresse, die bei Anwahl
  131.                ; angesprungen wird
  132.  
  133. :komBitmap     b     $80+28     ; Kopfbyte + 28 Folgebytes
  134.      b     %11111111,%11111111
  135.      b     %10000000,%00000001
  136.      b     %10000000,%00000001
  137.      b     %10000000,%00000001
  138.      b     %10000000,%00000001
  139.      b     %10000000,%00000001
  140.      b     %10000111,%11100001
  141.      b     %10000111,%11100001
  142.      b     %10000000,%00000001
  143.      b     %10000000,%00000001
  144.      b     %10000000,%00000001
  145.      b     %10000000,%00000001
  146.      b     %10000000,%00000001
  147.      b     %11111111,%11111111
  148.  
  149.  
  150. :EndDA     LoadW     appMain,RstrAppl
  151.      rts
  152.  
  153. :DoInfo     jsr     GotoFirstMenu
  154. :DoBox     LoadW     r0,dlgBoxRamBuf
  155.      LoadW     r1,merkBuffer
  156.      LoadW     r2,417
  157.      jsr     MoveData
  158.  
  159.      LoadW     r0,DialTab
  160.      jsr     DoDlgBox
  161.  
  162.      jsr     i_MoveData
  163.      w     merkBuffer
  164.      w     dlgBoxRamBuf
  165.      w     417
  166.  
  167.      rts
  168.  
  169. :DialTab     b     $81
  170.      b     OK
  171.      b     16,50
  172.      b     NULL
  173.  
  174. :merkBuffer
  175.      s     420
  176.  
  177.  
  178. :DiskName
  179.      s     17
  180.  
  181. :ProcessTab
  182.      w     DoProcess1
  183.      w     20
  184.  
  185. :DoProcess1
  186.      php
  187.      sei          ; interrupt sperren
  188.  
  189.      MoveB     seconds,MySek
  190.      MoveB     minutes,MyMin
  191.      MoveB     hour,MyStd
  192.      plp
  193.  
  194.      lda     MySek
  195.      sta     r0L
  196.      jsr     Div10
  197.      clc
  198.      lda     r0L
  199.      adc     #$30
  200.      sta     secZehner
  201.      lda     r8L
  202.      adc     #$30
  203.      sta     secEiner
  204.  
  205.      lda     MyMin
  206.      sta     r0L
  207.      jsr     Div10
  208.      clc
  209.      lda     r0L
  210.      adc     #$30
  211.      sta     minZehner
  212.      lda     r8L
  213.      adc     #$30
  214.      sta     minEiner
  215.  
  216.      lda     MyStd
  217.      sta     r0L
  218.      jsr     Div10
  219.      clc
  220.      lda     r0L
  221.      adc     #$30
  222.      sta     stdZehner
  223.      lda     r8L
  224.      adc     #$30
  225.      sta     stdEiner
  226.  
  227.      LoadW     r0,time
  228.      LoadW     r11,Left+100
  229.      LoadB     r1H,Top+32+20
  230.      jsr     PutString
  231.  
  232.      rts
  233.  
  234. :Div10     LoadB     r0H,0
  235.      ldx     #r0L
  236.      LoadW     r1,10
  237.      ldy     #r1L
  238.      jsr     Ddiv
  239.      rts
  240.      
  241. :time
  242. :stdZehner     b     "0"
  243. :stdEiner  b     "0:"
  244. :minZehner     b     "0"
  245. :minEiner     b     "0:"
  246. :secZehner     b     "0"
  247. :secEiner     b     "0  ",NULL
  248.  
  249. :MySek     b     0
  250. :MyMin     b     0
  251. :MyStd     b     0
  252.  
  253. :MyKeys
  254.      lda     keyData
  255.      ldy     #3     ; 4 Tasten abfragen
  256. ::10     cmp     Tasten,y
  257.      beq     :20
  258.      dey
  259.      bpl     :10
  260.      rts
  261.  
  262. ::20
  263.      lda     HighTast,y
  264.      pha
  265.      lda     LowTast,y
  266.      pha
  267.      rts
  268.  
  269. :Tasten     b     233     ; <cbm>+<i>
  270.      b     229     ; <cbm>+<e>
  271.      b     KEY_F1     ; <F1>
  272.      b     KEY_F3     ; <F3>
  273.  
  274. :HighTast     b     >DoBox-1,>EndDA128-1
  275.      b     >StopClock-1,>RunClock-1
  276.  
  277. :LowTast     b     <DoBox-1,<EndDA128-1
  278.      b     <StopClock-1,<RunClock-1
  279.  
  280. :StopClock
  281.      ldx     #0     ; erster Proze~!
  282.      jsr     FreezeProcess
  283.      rts
  284.  
  285. :RunClock
  286.      ldx     #0
  287.      jsr     UnfreezeProcess
  288.      rts
  289. :Start128     
  290.      lda     c128Flag
  291.      bmi     :128
  292.      jmp     EndDA
  293. ::128     jsr     i_MoveData
  294.      w     SCREEN_BASE
  295.      w     C128BackBuf
  296.      w     8000
  297.      lda     graphMode
  298.      bpl     :10
  299.      LoadW     r0,Init80
  300.      jsr     InitRam
  301. ::10     jmp     Start
  302. :Init80     w     MenuTab+2
  303.      b     4
  304.      w     MenuLeft*2,MenuLeft*2+40
  305.      w     UnterMenu+2
  306.      b     4
  307.      w     MenuLeft*2,MenuLeft*2+35
  308.      w     0
  309.  
  310. :EndDA128     jsr     i_MoveData
  311.      w     C128BackBuf
  312.      w     SCREEN_BASE
  313.      w     8000
  314.      jmp     EndDA
  315.  
  316. :C128BackBuf